import {LogLevels} from "./LogLevels.js";
import {LogStyleConfig, LogStyles} from "./LogStyles.js";

/**
 * 浏览器控制台打印日志的总方法
 * @param logLevels 日志级别
 * @param message 日志消息
 */
export function log(logLevels: LogLevels, message: string): void {
    let {tagText, tagCss, msgCss}: LogStyleConfig = LogStyles[logLevels];
    //以%c为界控制打印的样式
    console.log(`%c${tagText}%c ${message}`, tagCss, msgCss);
}

/**
 * 打印跟踪日志
 * @param message
 */
export function logTrace(message: string): void {
    log(LogLevels.TRACE, message);
}

/**
 * 打印跟踪日志
 * @param message
 */
export function logDebug(message: string): void {
    log(LogLevels.DEBUG, message);
}

/**
 * 打印信息日志
 * @param message
 */
export function logInfo(message: string): void {
    log(LogLevels.INFO, message);
}

/**
 * 打印警告日志
 * @param message
 */
export function logWarn(message: string): void {
    log(LogLevels.WARN, message);
}

/**
 * 打印错误日志
 * @param message
 */
export function logError(message: string): void {
    log(LogLevels.ERROR, message);
}
